﻿using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Servico.Bovespa.Ordens;
using Sinacor.Infra.Common.Exceptions;
using Sinacor.Infra.Service.ExceptionHandling;
using Sinacor.Infra.Service.Common;

namespace Sinacor.Servico.Bovespa.Ordens.BusinessLogic
{

    public class Mercado : BaseBusinessLogic
    {

        #region Constantes de Erro

        private const int ERRO_MERCADO_MERCADOINEXISTENTE = 103073;
        private const int ERRO_MERCADO_PESQUISA_SEM_RESULTADO = 103176;

        #endregion

        /// <summary>
        /// Historico:
        /// Data : 21/12/2007
        /// Autor: Ludmilla Modesto 
        /// Obs.: Implementado. Retorna o mercado
        /// 
        /// Data:28/01/2008 16:47
        /// Autor:Dmilanez.7comm
        /// Obs: 
        /// Disparar excecao no caso de nao retornar valor
        /// </summary>
        /// <returns></returns>
        public List<BusinessEntity.Mercado> ConsultarMercado()
        {
            ResourceAccess.Mercado raMercado = new ResourceAccess.Mercado();
            List<BusinessEntity.Mercado> beMercadoCollection = null;

            beMercadoCollection = raMercado.ConsultarMercados();

            if (beMercadoCollection == null || beMercadoCollection.Count == 0)
                throw new BusinessException(ERRO_MERCADO_PESQUISA_SEM_RESULTADO);

            return beMercadoCollection;
        }

        // <summary>
        /// Historico: ALT01
        /// Data : 10/01/2007
        /// Autor: Luciano Azevedo
        /// Obs.: Coorigida Business Exception
        /// </summary>
        /// <returns></returns>
        public void ValidarMercado(BusinessEntity.Mercado mercado)
        {
            ResourceAccess.Mercado mercadoRA = new ResourceAccess.Mercado();
            if (!mercadoRA.VerificarExistenciaMercado(mercado))
                throw new BusinessException(ERRO_MERCADO_MERCADOINEXISTENTE);
        }
    }
}
